package com.baizhi.feignclient;


import com.baizhi.entities.Product;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.Map;

//调用商品服务的接口，value为用来书写调用服务的id
@FeignClient(value = "PRODUCT")
public interface ProductClient {

    @GetMapping("/products")
    /*Map<String,Object>*/String getProductPage(@RequestParam("size") int size,
                                             @RequestParam("page") int page,
                                             @RequestParam("categoryId") int categoryId);


    @GetMapping("/product")
    String product();

    //返回值为对象
    @GetMapping("/product/{id}")
    Product getProduct(@PathVariable("id") Integer id);

    //接收List类型的参数,组装成test5?ids=21&ids=22&ids=23
    @GetMapping("/test5")
    String test5(@RequestParam("ids") String[] ids);

    //接收数组类型的参数
    @GetMapping("/test4")
    String test(@RequestParam("ids") String[] ids);

    //对象方式传参
    @PostMapping("/test3")
    String test(@RequestBody Product product);

    //零散类型参数的接口 queryString方式传参
    @GetMapping("/test2/{name}")
    String test(@PathVariable("name") String name);

    //零散类型参数的接口 queryString方式传参
    @GetMapping("/test")
    String test(@RequestParam("name") String name, @RequestParam("age")Integer age);

}
